#ifndef _ParamManager
#define _ParamManager

struct Param {
	char *data;
	char *value;

	Param *prev, *next;
};

class ParamManager {
public:
	Param *head, *tail;
	char _default[1];

	// Constructor
	ParamManager(void);
	// Deconstructor
	~ParamManager(void);

	// Returns whether the data is set or not
	bool isSet(char* /*data*/);

	// set a new data/value pair (overwrite value if data exists)
	bool set(char* /*data*/, char* /*value*/);
	// get a data's value, returns "" if the data does not exist
	char* get(char* /*data*/);
	// del a specified data
	bool del(char* /*data*/);

	// load up the passed in parameter string
	bool init(char* /*params*/, char* /*delim*/);
	// clear out the currently stored data
	bool clear(void);
};

#endif // _ParamManager